故事:中美双方军事实力(就军费与武装人员数量)对比

近年来,中美摩擦不断,尤其是川普上台后,中美之间地关系越发紧张,采取某些左派网友的观点,此次故事就将美国作为中国的假想敌,单以军费多寡以及武装人员人数问题,来推测双方军事实力。

  • 资料来源:World Bank
In [14]:
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from pyecharts.globals import ChartType, SymbolType
from plotly.graph_objs import Scatter, Layout, Data
In [15]:
import pandas as pd
df = pd.read_csv("junfei.csv",encoding="GBK")
df.head()
Out[15]:
Region Country Name Country Code Indicator Name Indicator Code 1960 1961 1962 1963 1964 ... 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
0 Aruba 阿鲁巴 ABW Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 ... 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
1 Afghanistan 阿富汗 AFG Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 ... 2.518695e+08 2.981469e+08 3.258070e+08 2.385834e+08 2.171941e+08 2.682271e+08 1.995186e+08 1.858783e+08 1.914071e+08 1.980863e+08
2 Angola 安哥拉 AGO Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 ... 3.311193e+09 3.500795e+09 3.639496e+09 4.144635e+09 6.090752e+09 6.841864e+09 3.608299e+09 2.764055e+09 3.062873e+09 1.983614e+09
3 Albania 阿尔巴尼亚 ALB Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 ... 1.827369e+08 1.858932e+08 1.970068e+08 1.832047e+08 1.800155e+08 1.781204e+08 1.323507e+08 1.308532e+08 1.443827e+08 1.804887e+08
4 Andorra 安道尔共和国 AND Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 ... 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00

5 rows × 64 columns

In [16]:
add =list(df['Region'])
In [17]:
junfei1960=list(df['1960'])
jf1960 = []
for i in junfei1960:
    jf1960.append(int(i))
    #1960数据
    
junfei1961=list(df['1961'])
jf1961 = []
for i in junfei1961:
    jf1961.append(int(i))

junfei1962=list(df['1962'])
jf1962 = []
for i in junfei1962:
    jf1962.append(int(i))
    
junfei1963=list(df['1963'])
jf1963 = []
for i in junfei1963:
    jf1963.append(int(i))

junfei1964=list(df['1964'])
jf1964 = []
for i in junfei1964:
    jf1964.append(int(i))
    
junfei1965=list(df['1965'])
jf1965 = []
for i in junfei1965:
    jf1964.append(int(i))

junfei1966=list(df['1966'])
jf1966 = []
for i in junfei1966:
    jf1966.append(int(i))

junfei1967=list(df['1967'])
jf1967 = []
for i in junfei1967:
    jf1967.append(int(i))

junfei1968=list(df['1968'])
jf1968 = []
for i in junfei1968:
    jf1968.append(int(i))

junfei1969=list(df['1969'])
jf1969 = []
for i in junfei1969:
    jf1969.append(int(i))

junfei1970=list(df['1970'])
jf1970 = []
for i in junfei1970:
    jf1970.append(int(i))
    
junfei1971=list(df['1971'])
jf1971 = []
for i in junfei1971:
    jf1971.append(int(i))

junfei1972=list(df['1972'])
jf1972 = []
for i in junfei1972:
    jf1972.append(int(i))

junfei1973=list(df['1973'])
jf1973 = []
for i in junfei1973:
    jf1973.append(int(i))

junfei1974=list(df['1974'])
jf1974 = []
for i in junfei1974:
    jf1974.append(int(i))

junfei1975=list(df['1975'])
jf1975 = []
for i in junfei1975:
    jf1975.append(int(i))

junfei1976=list(df['1976'])
jf1976 = []
for i in junfei1976:
    jf1976.append(int(i))
    
junfei1977=list(df['1977'])
jf1977 = []
for i in junfei1977:
    jf1977.append(int(i))

junfei1978=list(df['1978'])
jf1978 = []
for i in junfei1978:
    jf1978.append(int(i))

junfei1979=list(df['1979'])
jf1979 = []
for i in junfei1979:
    jf1979.append(int(i))
    
junfei1980=list(df['1980'])
jf1980 = []
for i in junfei1980:
    jf1980.append(int(i))
    
junfei1981=list(df['1981'])
jf1981 = []
for i in junfei1981:
    jf1981.append(int(i))
    
junfei1982=list(df['1982'])
jf1982 = []
for i in junfei1982:
    jf1982.append(int(i))
    
junfei1983=list(df['1983'])
jf1983 = []
for i in junfei1983:
    jf1983.append(int(i))
    
junfei1984=list(df['1984'])
jf1984 = []
for i in junfei1984:
    jf1984.append(int(i))

junfei1985=list(df['1985'])
jf1985 = []
for i in junfei1985:
    jf1985.append(int(i))
    
junfei1986=list(df['1986'])
jf1986 = []
for i in junfei1986:
    jf1986.append(int(i))
    
junfei1987=list(df['1987'])
jf1987 = []
for i in junfei1987:
    jf1987.append(int(i))

junfei1988=list(df['1988'])
jf1988 = []
for i in junfei1988:
    jf1988.append(int(i))

junfei1989=list(df['1989'])
jf1989 = []
for i in junfei1989:
    jf1989.append(int(i))

junfei1990=list(df['1990'])
jf1990 = []
for i in junfei1990:
    jf1990.append(int(i))

junfei1991=list(df['1991'])
jf1991 = []
for i in junfei1991:
    jf1991.append(int(i))

junfei1992=list(df['1992'])
jf1992 = []
for i in junfei1992:
    jf1992.append(int(i))

junfei1993=list(df['1993'])
jf1993 = []
for i in junfei1993:
    jf1993.append(int(i))

junfei1994=list(df['1994'])
jf1994 = []
for i in junfei1994:
    jf1994.append(int(i))

junfei1995=list(df['1995'])
jf1995 = []
for i in junfei1995:
    jf1995.append(int(i))

junfei1996=list(df['1996'])
jf1996 = []
for i in junfei1996:
    jf1996.append(int(i))

junfei1997=list(df['1997'])
jf1997 = []
for i in junfei1997:
    jf1997.append(int(i))
    
junfei1998=list(df['1998'])
jf1998 = []
for i in junfei1998:
    jf1998.append(int(i))
    
junfei1999=list(df['1999'])
jf1999 = []
for i in junfei1999:
    jf1999.append(int(i))

junfei2000=list(df['2000'])
jf2000 = []
for i in junfei2000:
    jf2000.append(int(i))
    
junfei2001=list(df['2001'])
jf2001 = []
for i in junfei2001:
    jf2001.append(int(i))
    
junfei2002=list(df['2002'])
jf2002 = []
for i in junfei2002:
    jf2002.append(int(i))

junfei2003=list(df['2003'])
jf2003 = []
for i in junfei2003:
    jf2003.append(int(i))
    
junfei2004=list(df['2004'])
jf2004 = []
for i in junfei2004:
    jf2004.append(int(i))
    
junfei2005=list(df['2005'])
jf2005 = []
for i in junfei2005:
    jf2005.append(int(i))
    
junfei2006=list(df['2006'])
jf2006 = []
for i in junfei2006:
    jf2006.append(int(i))
    
junfei2007=list(df['2007'])
jf2007 = []
for i in junfei2007:
    jf2007.append(int(i))
    
junfei2008=list(df['2008'])
jf2008 = []
for i in junfei2008:
    jf2008.append(int(i))
    
junfei2009=list(df['2009'])
jf2009 = []
for i in junfei2009:
    jf2009.append(int(i))
    
junfei2010=list(df['2010'])
jf2010 = []
for i in junfei2010:
    jf2010.append(int(i))
    
junfei2011=list(df['2011'])
jf2011 = []
for i in junfei2011:
    jf2011.append(int(i))
    
junfei2012=list(df['2012'])
jf2012 = []
for i in junfei2012:
    jf2012.append(int(i))
    
junfei2013=list(df['2013'])
jf2013 = []
for i in junfei2013:
    jf2013.append(int(i))
    
junfei2014=list(df['2014'])
jf2014 = []
for i in junfei2014:
    jf2014.append(int(i))
    
junfei2015=list(df['2015'])
jf2015 = []
for i in junfei2015:
    jf2015.append(int(i))
    
junfei2016=list(df['2016'])
jf2016 = []
for i in junfei2016:
    jf2016.append(int(i))
    
junfei2017=list(df['2017'])
jf2017 = []
for i in junfei2017:
    jf2017.append(int(i))
    
junfei2018=list(df['2018'])
jf2018 = []
for i in junfei2018:
    jf2018.append(int(i))
In [18]:
from pyecharts.charts import Map,Timeline
from pyecharts import options as opts

def map_world()->Map:
    a = (
    Map()
    
    .add("美元",list(zip(add,jf1998)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return a
a = map_world()

def map_world()->Map:
    b = (
    Map()
    .add("美元",list(zip(add,jf1999)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1999年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return b
b = map_world()

def map_world()->Map:
    c = (
    Map()
    .add("美元",list(zip(add,jf2000)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2000年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return c
c = map_world()

def map_world()->Map:
    d = (
    Map()
    .add("美元",list(zip(add,jf2001)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2001年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return d
d = map_world()

def map_world()->Map:
    e = (
    Map()
    .add("美元",list(zip(add,jf2002)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2002年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return e
e = map_world()

def map_world()->Map:
    f = (
    Map()
    .add("美元",list(zip(add,jf2003)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2003年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return f
f = map_world()

def map_world()->Map:
    g = (
    Map()
    .add("美元",list(zip(add,jf2004)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2004年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return g
g = map_world()

def map_world()->Map:
    h = (
    Map()
    .add("美元",list(zip(add,jf2005)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2005年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return h
h = map_world()

def map_world()->Map:
    i = (
    Map()
    .add("美元",list(zip(add,jf2006)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2006年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return i
i = map_world()

def map_world()->Map:
    j = (
    Map()
    .add("美元",list(zip(add,jf2007)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2007年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return j
j = map_world()

def map_world()->Map:
    k = (
    Map()
    .add("美元",list(zip(add,jf2008)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2008年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return k
k = map_world()

def map_world()->Map:
    l = (
    Map()
    .add("美元",list(zip(add,jf2009)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2009年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return l
l = map_world()

def map_world()->Map:
    m = (
    Map()
    .add("美元",list(zip(add,jf2010)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2010年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return m
m = map_world()

def map_world()->Map:
    n = (
    Map()
    .add("美元",list(zip(add,jf2011)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2011年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return n
n = map_world()

def map_world()->Map:
    o = (
    Map()
    .add("美元",list(zip(add,jf2012)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2012年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return o
o = map_world()

def map_world()->Map:
    p = (
    Map()
    .add("美元",list(zip(add,jf2013)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2013年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return p
p = map_world()

def map_world()->Map:
    q = (
    Map()
    .add("美元",list(zip(add,jf2014)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2014年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return q
q = map_world()

def map_world()->Map:
    r = (
    Map()
    .add("美元",list(zip(add,jf2015)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2015年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return r
r = map_world()

def map_world()->Map:
    s = (
    Map()
    .add("美元",list(zip(add,jf2016)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2016年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return s
s = map_world()

def map_world()->Map:
    t = (
    Map()
    .add("美元",list(zip(add,jf2017)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2017年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return t
t = map_world()

def map_world()->Map:
    u = (
    Map()
    .add("美元",list(zip(add,jf2018)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False),)
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "2018年世界各地军费"),
        visualmap_opts=opts.VisualMapOpts(min_=1,max_=649000000000),
        )
    )
    return u
u = map_world()
In [19]:
timeline = Timeline()
timeline.add(a, '1998')
timeline.add(b, '1999')
timeline.add(c, '2000')
timeline.add(d, '2001')
timeline.add(e, '2002')
timeline.add(f, '2003')
timeline.add(g, '2004')
timeline.add(h, '2005')
timeline.add(i, '2006')
timeline.add(j, '2007')
timeline.add(k, '2008')
timeline.add(l, '2009')
timeline.add(m, '2010')
timeline.add(n, '2011')
timeline.add(o, '2012')
timeline.add(p, '2013')
timeline.add(q, '2014')
timeline.add(r, '2015')
timeline.add(s, '2016')
timeline.add(t, '2017')
timeline.add(u, '2018')
timeline.render_notebook()
Out[19]:

军费的多寡是体现国家军事实力的外在表现,此图为自1998年以来军费(美元)地图,从世界军费地图上可以看出,美国军费长期领先各国,尤其在2002年后美国军费有了很大提升,而在2008年后中国的军费也有了极其明显的增长,但即使是如此,与美国依然有较大距离差距。

很明显,即便中国与早期相比,军费已有了长足的发展,但仍然与美国的军费有着成倍的距离,而直到2008年,中国的军费总额仅仅为美国80年代的军费水平。

In [20]:
dfd = pd.read_csv("junfeizhanbi.csv",encoding="GBK")
dfd.head()
Out[20]:
Region Country Name Country Code Indicator Name Indicator Code 1960 1961 1962 1963 1964 ... 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
0 Aruba 阿鲁巴 ABW 军费支出(占GDP的百分比) MS.MIL.XPND.GD.ZS 0.0 0.0 0.0 0.0 0.0 ... 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1 Afghanistan 阿富汗 AFG 军费支出(占GDP的百分比) MS.MIL.XPND.GD.ZS 0.0 0.0 0.0 0.0 0.0 ... 2.087413 1.945837 1.821346 1.175417 1.076950 1.298013 0.993455 0.955493 0.943963 0.984561
2 Angola 安哥拉 AGO 军费支出(占GDP的百分比) MS.MIL.XPND.GD.ZS 0.0 0.0 0.0 0.0 0.0 ... 4.704389 4.177585 3.255660 3.236659 4.455239 4.698455 3.105426 2.733341 2.421113 1.777138
3 Albania 阿尔巴尼亚 ALB 军费支出(占GDP的百分比) MS.MIL.XPND.GD.ZS 0.0 0.0 0.0 0.0 0.0 ... 1.517217 1.558592 1.528266 1.487083 1.408982 1.346516 1.162304 1.101508 1.107551 1.178901
4 Andorra 安道尔共和国 AND 军费支出(占GDP的百分比) MS.MIL.XPND.GD.ZS 0.0 0.0 0.0 0.0 0.0 ... 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

5 rows × 64 columns

In [21]:
zhanbi1998=list(dfd['1998'])
zb1998 = []
for i in zhanbi1998:
    zb1998.append(round(i,2))

zhanbi1999=list(dfd['1999'])
zb1999 = []
for i in zhanbi1999:
    zb1999.append(round(i,2))
    
zhanbi2000=list(dfd['2000'])
zb2000 = []
for i in zhanbi2000:
    zb2000.append(round(i,2))

zhanbi2001=list(dfd['2001'])
zb2001 = []
for i in zhanbi2001:
    zb2001.append(round(i,2))

zhanbi2002=list(dfd['2002'])
zb2002 = []
for i in zhanbi2002:
    zb2002.append(round(i,2))

zhanbi2003=list(dfd['2003'])
zb2003 = []
for i in zhanbi2003:
    zb2003.append(round(i,2))

    
zhanbi2004=list(dfd['2004'])
zb2004 = []
for i in zhanbi2004:
    zb2004.append(round(i,2))

zhanbi2005=list(dfd['2005'])
zb2005 = []
for i in zhanbi2005:
    zb2005.append(round(i,2))
    
zhanbi2006=list(dfd['2006'])
zb2006 = []
for i in zhanbi2006:
    zb2006.append(round(i,2))
    
zhanbi2007=list(dfd['2007'])
zb2007 = []
for i in zhanbi2007:
    zb2007.append(round(i,2))
    
zhanbi2008=list(dfd['2008'])
zb2008 = []
for i in zhanbi2008:
    zb2008.append(round(i,2))
    
zhanbi2009=list(dfd['2009'])
zb2009 = []
for i in zhanbi2009:
    zb2009.append(round(i,2))
    
zhanbi2010=list(dfd['2010'])
zb2010 = []
for i in zhanbi2010:
    zb2010.append(round(i,2))
    
zhanbi2011=list(dfd['2011'])
zb2011 = []
for i in zhanbi2011:
    zb2011.append(round(i,2))
    
zhanbi2012=list(dfd['2012'])
zb2012 = []
for i in zhanbi2012:
    zb2012.append(round(i,2))
    
zhanbi2013=list(dfd['2013'])
zb2013 = []
for i in zhanbi2013:
    zb2013.append(round(i,2))
    
zhanbi2014=list(dfd['2014'])
zb2014 = []
for i in zhanbi2014:
    zb2014.append(round(i,2))
    
zhanbi2015=list(dfd['2015'])
zb2015 = []
for i in zhanbi2015:
    zb2015.append(round(i,2))
    
zhanbi2016=list(dfd['2016'])
zb2016 = []
for i in zhanbi2009:
    zb2016.append(round(i,2))
    
zhanbi2017=list(dfd['2017'])
zb2017 = []
for i in zhanbi2017:
    zb2017.append(round(i,2))
    
zhanbi2018=list(dfd['2018'])
zb2018 = []
for i in zhanbi2018:
    zb2018.append(round(i,2))
In [22]:
from pyecharts.charts import Map,Timeline
from pyecharts import options as opts

def map_world()->Map:
    a = (
    Map()
    .add("美元",list(zip(add,zb1998)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return a
a = map_world()

def map_world()->Map:
    b = (
    Map()
    .add("美元",list(zip(add,zb1999)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return b
b = map_world()

def map_world()->Map:
    c = (
    Map()
    .add("美元",list(zip(add,zb2000)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return c
c = map_world()

def map_world()->Map:
    d = (
    Map()
    .add("美元",list(zip(add,zb2001)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return d
d = map_world()

def map_world()->Map:
    e = (
    Map()
    .add("美元",list(zip(add,zb2002)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return e
e = map_world()

def map_world()->Map:
    f = (
    Map()
    .add("美元",list(zip(add,zb2003)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return f
f = map_world()

def map_world()->Map:
    g = (
    Map()
    .add("美元",list(zip(add,zb2004)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return g
g = map_world()

def map_world()->Map:
    h = (
    Map()
    .add("美元",list(zip(add,zb2005)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return h
h = map_world()

def map_world()->Map:
    i = (
    Map()
    .add("美元",list(zip(add,zb2006)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return i
i = map_world()

def map_world()->Map:
    j = (
    Map()
    .add("美元",list(zip(add,zb2007)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return j
j = map_world()

def map_world()->Map:
    k = (
    Map()
    .add("美元",list(zip(add,zb2008)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return k
k = map_world()

def map_world()->Map:
    l = (
    Map()
    .add("美元",list(zip(add,zb2009)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return l
l = map_world()

def map_world()->Map:
    m = (
    Map()
    .add("美元",list(zip(add,zb2010)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return m
m = map_world()

def map_world()->Map:
    n = (
    Map()
    .add("美元",list(zip(add,zb2011)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return n
n = map_world()

def map_world()->Map:
    o = (
    Map()
    .add("美元",list(zip(add,zb2012)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return o
o = map_world()

def map_world()->Map:
    p = (
    Map()
    .add("美元",list(zip(add,zb2013)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return p
p = map_world()

def map_world()->Map:
    q = (
    Map()
    .add("美元",list(zip(add,zb2014)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return q
q = map_world()

def map_world()->Map:
    r = (
    Map()
    .add("美元",list(zip(add,zb2015)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return r
r = map_world()

def map_world()->Map:
    s = (
    Map()
    .add("美元",list(zip(add,zb2016)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return s
s = map_world()

def map_world()->Map:
    t = (
    Map()
    .add("美元",list(zip(add,zb2017)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return t
t = map_world()

def map_world()->Map:
    u = (
    Map()
    .add("美元",list(zip(add,zb2018)),"world")
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False),)
        .set_global_opts(
        title_opts = opts.TitleOpts(title = "1998年世界各地军费占GDP比"),
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=4),
        )
    )
    return u
u = map_world()
In [23]:
timeline = Timeline()
timeline.add(a, '1998')
timeline.add(b, '1999')
timeline.add(c, '2000')
timeline.add(d, '2001')
timeline.add(e, '2002')
timeline.add(f, '2003')
timeline.add(g, '2004')
timeline.add(h, '2005')
timeline.add(i, '2006')
timeline.add(j, '2007')
timeline.add(k, '2008')
timeline.add(l, '2009')
timeline.add(m, '2010')
timeline.add(n, '2011')
timeline.add(o, '2012')
timeline.add(p, '2013')
timeline.add(q, '2014')
timeline.add(r, '2015')
timeline.add(s, '2016')
timeline.add(t, '2017')
timeline.add(u, '2018')
timeline.render_notebook()
Out[23]:

图二为自1998年以来军费占GDP比重地图,军费占GDP比一直以来都是很重要的,判定军费使用是否正常的判定标准,一般正常的军费支出为2%~4%左右,其中军费占GDP比高的国家主要有非洲部分国家,中亚以及俄罗斯,中国仍然处于军费占GDP比较低的水平。而美国在2001年后军费占比逐步增加,尽管在之后一段时间内有所起伏,军费支出依然高昂,而这一时期恰好是911事件发生之后,使得美国军队能够更加容易的从获得更加高额的军费预算。

In [24]:
dfc= df.set_index("Country Name")
dfc.head()
Out[24]:
Region Country Code Indicator Name Indicator Code 1960 1961 1962 1963 1964 1965 ... 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
Country Name
阿鲁巴 Aruba ABW Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
阿富汗 Afghanistan AFG Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 0.0 ... 2.518695e+08 2.981469e+08 3.258070e+08 2.385834e+08 2.171941e+08 2.682271e+08 1.995186e+08 1.858783e+08 1.914071e+08 1.980863e+08
安哥拉 Angola AGO Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 0.0 ... 3.311193e+09 3.500795e+09 3.639496e+09 4.144635e+09 6.090752e+09 6.841864e+09 3.608299e+09 2.764055e+09 3.062873e+09 1.983614e+09
阿尔巴尼亚 Albania ALB Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.827369e+08 1.858932e+08 1.970068e+08 1.832047e+08 1.800155e+08 1.781204e+08 1.323507e+08 1.308532e+08 1.443827e+08 1.804887e+08
安道尔共和国 Andorra AND Military expenditure (current USD) MS.MIL.XPND.CD 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00

5 rows × 63 columns

In [25]:
中国 = go.Scatter(
    x=[pd.to_datetime('01/01/{y}'.format(y=x), format="%m/%d/%Y") for x in dfc.columns[31:].values],
    y=dfc.loc["中国",:][31:].values,
    name = "中国"
)
美国 = go.Scatter(
    x=[pd.to_datetime('01/01/{y}'.format(y=x), format="%m/%d/%Y") for x in dfc.columns[31:].values],
    y=dfc.loc["美国",:][31:].values,
    name = "美国"
)

layout = dict(xaxis=dict(rangeselector=dict( buttons=list([
                                                dict(count=3,
                                                     label="3年",
                                                     step="year",
                                                     stepmode="backward"),
                                                dict(count=5,
                                                     label="5年",
                                                     step="year",
                                                     stepmode="backward"),
                                                dict(count=10,
                                                     label="10年",
                                                     step="year",
                                                     stepmode="backward"),
                                                dict(step="all")
                                            ])),
                         rangeslider=dict(bgcolor="#70EC57"),
                         title='年份'
                        ),
              yaxis=dict(title='中美军费增长图'),
              title="中美军费增长图"               
             )

abc = dict(data=[美国,中国], layout=layout) 

py.offline.iplot(abc)

首先从图上看,中美双方军费支出曲线都可分为两个阶段,一个是平缓期,一个是高速增长时期。平缓期即是曲线相对平缓的时期,美国的平缓期是1998年至2001年,而在此后便是军费高速增长时期,诱因就是911事件的发生,美方迅速展开报复阿富汗的行动,使军费支出快速拔高。

而中国平缓期则是1998年至2005年,而此后虽然军费有所增长,但其增长曲线相对于美方的曲线是比较缓和的增长的,虽然相较于2005年军费增长的速度有所上升。

In [ ]:
dfg = pd.read_csv("wuzhuangrenyuan_zongshu.csv",encoding="GBK")
In [ ]:
dff= dfg.set_index("Region")
In [ ]:
mgrs=list(dff.iloc[249])[42:]
mgrss=[]
for i in mgrs:
    mgrss.append(round(i / 1000000,2))
In [ ]:
zgrs = list(dff.iloc[38])[42:]
zgrss=[]
for i in zgrs:
    zgrss.append(round(i / 1000000,2))
In [ ]:
tmls = list(dff.columns[42:])
In [ ]:
dft = pd.read_csv("wuzhuangrenyuan_zhanbi.csv",encoding="GBK")
In [20]:
dfe= dft.set_index("Region")
In [21]:
mgzb = list(dfe.iloc[249])[42:]
mgzbb=[]
for i in mgzb:
    mgzbb.append(round(i,2))

zgzb = list(dfe.iloc[38])[42:]
zgzbb=[]
for i in zgzb:
    zgzbb.append(round(i,2))
In [23]:
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatter


def grid_vertical() -> Grid:
    bar = (
        Bar()
        .add_xaxis(tmls)
        .add_yaxis("zg",zgrss)
        .add_yaxis("mg", mgrss)
        .set_global_opts(title_opts=opts.TitleOpts(title="中美军人数量(百万)"))
    )
    
    line = (
        Line()
        .add_xaxis(tmls)
        .add_yaxis("zg",zgzbb)
        .add_yaxis("mg",mgzbb)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="中美军人数量与劳动力占比", pos_top="48%"),
            legend_opts=opts.LegendOpts(pos_top="48%"),
        )
    )

    grid = (
        Grid()
        .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
        .add(line, grid_opts=opts.GridOpts(pos_top="60%"))
    )
    return grid
grid_vertical().render_notebook()
Out[23]:

这是中美双方武装人员的人数以及武装人员占劳动力比重图。可以看到,在1998年,中国的武装人员数量是远远大于美国的,尽管中国武装人员占劳动力比重同样远远小于美国,长期以来仅仅是美国的二分之一、甚至是三分之一。但是由于中国人口基数大,中国的武装人数仍然远超美国。

然而随着进入千禧年,尤其是在2007年这一年,中国武装人员数量减少了近百万,而美国长期以来的武装数量则一直保持在一百五十万左右,但同样有所降低。

总结:目前中国依然要以和平发展为主旋律,但国家的强大不可避免的会触碰到其他国家的利益,改革开放四十多年间,中国经济与科技都已取得了极其伟大的成就,虽然发展的并不全面,但中国也不再是曾经那个任人宰割的牛羊。而国家的实力极大的取决于军事实力,军事上的投入仍然至关重要,同时也要确保科技发展的活力。

In [ ]: